home *** CD-ROM | disk | FTP | other *** search
/ An Introduction to Progr…l Basic 6.0 (4th Edition) / An Introduction to Programming using Visual Basic 6.0.iso / PROGRAMS / CH7 / 7-4-5.FRM (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1998-09-29  |  3.0 KB  |  105 lines

  1. VERSION 5.00
  2. Begin VB.Form frm7_4_5 
  3.    Caption         =   "Binary Search"
  4.    ClientHeight    =   1044
  5.    ClientLeft      =   1740
  6.    ClientTop       =   2496
  7.    ClientWidth     =   3588
  8.    BeginProperty Font 
  9.       Name            =   "MS Sans Serif"
  10.       Size            =   7.8
  11.       Charset         =   0
  12.       Weight          =   700
  13.       Underline       =   0   'False
  14.       Italic          =   0   'False
  15.       Strikethrough   =   0   'False
  16.    EndProperty
  17.    LinkTopic       =   "Form1"
  18.    PaletteMode     =   1  'UseZOrder
  19.    ScaleHeight     =   1044
  20.    ScaleWidth      =   3588
  21.    Begin VB.PictureBox picResult 
  22.       Height          =   255
  23.       Left            =   1440
  24.       ScaleHeight     =   204
  25.       ScaleWidth      =   2004
  26.       TabIndex        =   3
  27.       Top             =   600
  28.       Width           =   2055
  29.    End
  30.    Begin VB.CommandButton cmdSearch 
  31.       Caption         =   "Search"
  32.       Default         =   -1  'True
  33.       Height          =   495
  34.       Left            =   120
  35.       TabIndex        =   2
  36.       Top             =   480
  37.       Width           =   1215
  38.    End
  39.    Begin VB.TextBox txtCorporation 
  40.       Height          =   285
  41.       Left            =   1920
  42.       TabIndex        =   1
  43.       Top             =   120
  44.       Width           =   1575
  45.    End
  46.    Begin VB.Label lblName 
  47.       Alignment       =   1  'Right Justify
  48.       Caption         =   "Name of corporation"
  49.       Height          =   255
  50.       Left            =   0
  51.       TabIndex        =   0
  52.       Top             =   120
  53.       Width           =   1815
  54.    End
  55. Attribute VB_Name = "frm7_4_5"
  56. Attribute VB_GlobalNameSpace = False
  57. Attribute VB_Creatable = False
  58. Attribute VB_PredeclaredId = True
  59. Attribute VB_Exposed = False
  60. Dim firm(1 To 100) As String
  61. Dim numFirms As Integer
  62. Private Sub BinarySearch(corp As String, result As String)
  63.   Dim foundFlag As Boolean
  64.   Dim first As Integer, middle As Integer, last As Integer
  65.   'Array firm() assumed already ordered alphabetically
  66.   'Binary search of firm() for corp
  67.   foundFlag = False
  68.   first = 1
  69.   last = numFirms
  70.   Do While (first <= last) And (Not foundFlag)
  71.     middle = Int((first + last) / 2)
  72.     Select Case UCase(firm(middle))
  73.       Case corp
  74.         foundFlag = True
  75.       Case Is > corp
  76.         last = middle - 1
  77.       Case Is < corp
  78.         first = middle + 1
  79.     End Select
  80.   Loop
  81.   If foundFlag Then
  82.       result = "found"
  83.     Else
  84.       result = "not found"
  85.   End If
  86. End Sub
  87. Private Sub cmdSearch_Click()
  88.   Dim corp As String, result As String
  89.   corp = UCase(Trim(txtCorporation.Text))
  90.   Call BinarySearch(corp, result)
  91.   'Display results of search
  92.   picResult.Cls
  93.   picResult.Print corp; " "; result
  94. End Sub
  95. Private Sub Form_Load()
  96.   'Fill array with data from FIRMS.TXT
  97.   Open App.Path & "\FIRMS.TXT" For Input As #1  'Contains up to 100 companies
  98.   numFirms = 0
  99.   Do While (Not EOF(1)) And (numFirms < UBound(firm))
  100.     numFirms = numFirms + 1
  101.     Input #1, firm(numFirms)
  102.   Loop
  103.   Close #1
  104. End Sub
  105.